Determination of drill bit rate of penetration from surface measurements

ABSTRACT

A method of determining the rate of penetration Δd of a drill bit at the end of a drill string while drilling a well, comprising: 
     (a) measuring the vertical displacement S of the drill string at the surface, 
     (b) determining a state space description of S comprising a state space measurement equation: ##EQU1## and a state evolution equation: ##EQU2## wherein S and Δd are as previously defined, Δ is the difference operator for time τ between adjacent samples k and k+1, Λ is the drill string compliance, ρ is the noise term associated with the surface displacement measurement, r is the noise term associated with fluctuations in the state, and h is the hookload, and 
     (c) applying a Kalman filter to said equations to obtain an estimate of the state parameters including Δd.

The present invention relates to a method of determining the rate of penetration (ROP) of a drill bit from measurements made at the surface while drilling.

In the rotary drilling of wells such as hydrocarbon wells, a drill bit is located at the end of a drill string formed from a number of hollow drill pipes attached end to end which is rotated so as to cause the bit to drill into the formation under the applied weight of the drill string. The drill string is suspended from a hook and as the bit penetrates the formation, the hook is lowered so as to allow the drill string to descend further into the well. The ROP has been found to be a useful parameter for measuring the drilling operation and provides information about the formation being drilled and the state of the bit being used. Traditionally, ROP has been measured by monitoring the rate at which the drill string is lowered into the well at the surface. However, as the drill string, which is formed of steel pipes, is relatively long the elasticity or compliance of the string can mean that the actual ROP of the bit is considerably different to the rate at which the string is lowered into the hole. The errors which can be caused by this effect become progressively larger as the well becomes deeper and the string longer, especially if the well is deviated when increased friction between the string and the borehole wall can be encountered.

Certain techniques have been proposed to overcome these potential problems. In U.S. Pat. No. 2,688,871 and U.S. Pat. No. 3,777,560 the drill string is considered as a spring and:the elasticity of the string is calculated theoretically from the length of the drill string and the Young's modulus of the pipe used to form the string. This information is then used to calculate ROP from the load applied at the hook suspending the drill string and the rate at which the string is lowered into the well. These methods suffer from the problem that no account is taken of the friction encountered by the drill string as a result of contact with the wall of the well. FR 2038700 proposes a method to overcome this problem in which the modulus of elasticity is measured in situ. This is achieved by determining the variations in tension to which the drill string is subjected as the bit goes down the well until it touches the bottom. Since it is difficult to determine exactly when the bit touches the bottom from surface measurements, strain gauges are provided near the bit and a telemetry system is required to relay the information to the surface. This method still does not provide measurements when drilling is taking place and so is inaccurate as well as difficult to implement.

By contrast, in FR 2,165,851 (AU 44,424/72) there is employed a mathematical model describing the drill bit cutting rate--the model necessitates a knowledge of the drill depth, the drill rotational speed, and the weight on bit, and its use involves the application of a Kalman-Bucy filter--to derive an ROP value. This method suffers from the obvious problems of having to know what is really going on at the bit, and the model utilised applies only to roller cone bits. The later GB 2,129,141 A tries to deal with the problem in a related way, applying Kalman filtering to a model that treats the drillstring as an elastic cable, and provides a downhole bit-acceleration measurement device (together with a "motionless tool" sensor necessary for correcting certain errors in depth measurement). Though quite useful, this method, like that of the aforementioned FR 2,165,811, suffers from its requirement for knowledge of downhole conditions.

A simpler method is proposed in U.S. Pat. No. 4,843,875 (incorporated herein by reference) in which ROP is measured from surface measurements while drilling is taking place. This method uses the following model:

    Δd=Δs+ΛΔh

wherein d is the downhole displacement, s is the surface displacement, Λ is the drill string compliance and h is the axial force at the surface (Δ is the difference operator taken over some time interval τ). Using the assumptions that over any time interval τ' (typically 5 minutes) drilling is at an average constant weight on bit (WOB), that the lithology does not change significantly, and the drill string behaves as a perfect spring, then a least squares regression is used to obtain an estimate of Λ. In a plot of Δs against Δh, Λ is the slope of the best fit line through the data points. The derived value of Λ can be substituted back into the model to give ROP which can then be integrated to give hole depth. The choice of τ and τ' may be optimised with field experience. Unfortunately, implementation of this approach means that the drill string compliance is only updated at a time interval of τ', and control logic must be incorporated to ensure that the required assumptions are true. If this cannot be done, calculation of compliance must be suspended.

It is an object of the present invention to provide a method of determining ROP from surface measurements which can be used where the approach outlined above is undesirable or inappropriate.

In accordance with one aspect of the present invention, there is provided a method of determining the rate of penetration Δd of a drill bit at the end of a drill string while drilling a well, comprising:

(a) obtaining by measurement an approximate value S for the actual vertical displacement s of the drill string mounted at the surface,

(b) formulating a mathematical model to describe the vertical displacement of the drill string in terms of certain chosen physical parameters pertaining to the drill, and

(c) applying a Kalman filter to said equations and then solving the system of equation to obtain an estimate of the state parameters including Δd,

characterised in that the mathematical model is a mathematical state space model of the system, comprising a state space measurement equation defining the value S: ##EQU3## (wherein S, Δd, and s are as previously defined, Δ is the difference operator for time τ between adjacent samples k and k+1, Λ is the drill string compliance, and ρ is the noise term associated with the surface displacement measurement)

and a state evolution equation: ##EQU4## (wherein all the symbols are as previously defined, with the additions of r being the noise term associated with fluctuations in the state, h being the hookload, and Δh being the hookload rate of change).

The present invention uses the same basic model as that of the aforementioned U.S. Pat. No. 4,843,875 formulated in state space, and uses Kalman filtering as a continuously adaptive technique to solve the state S parameters.

As is explained in more detail hereinafter, the actual surface vertical displacement s when measured becomes the approximate value S because of various uncertainties and inaccuracies referred to generally as "noise" (the term "ρ").

The present invention will now be described, by way of example, with reference to the accompanying drawings in which:

FIG. 1 shows plots of the data obtained from experimental apparatus,

FIG. 2 shows plots of the data obtained from further experimental apparatus, and

FIG. 3 and 4 show plots of data analysed by the present invention corresponding to FIGS. 1 and 2.

Referring now to the drawings, the data shown in FIGS. 1 and 2 are obtained from experimental apparatus designed to provide realistic drilling data in controllable conditions. Such apparatus is described in U.S. Pat. No. 4,928,521 which is incorporated herein by reference.

The two examples from the experimental apparatus demonstrate the difficulties with ROP calculations.

FIG. 1(a) shows the raw depth measurement from an experiment in a drilling test machine with a PDC bit drilling marble. The derivative of this measurement, calculated by differencing adjacent points, is shown in 1(b). A "noise" level of about ±2 mm is apparent, and totally masks the underlying trend. Smoothing this derivative, as shown in FIG. 1(c) (10 second averaging used) yields an indication of the ROP, but the estimate still has a high variance and the averaging has introduced a damped response to sharp changes in weight on bit. Further reduction of the variance by increasing the averaging time will result in a steady state estimate of ROP never being achieved for the finite duration drilling segments.

Another example is shown in FIG. 2, taken from a test in a different drilling machine. FIG. 2(a) shows the depth measurement and 2(b) its derivative. Here again, the derivative calculation is very noisy, but the nature of the noise is different--it is not due to vibrations, but to quantisation (about 0.2 mm steps) in the original depth measurement. FIG. 2(c) shows a 2 second average of the depth derivative. The underlying ROP trend is apparent but the variance due to measurement quantisation is still high. Increasing the averaging time would blur the boundaries between the different drilling segments.

Both these examples demonstrate the problem with the direct calculation of ROP as a derivative of depth. Vibrations and measurement quantisation noise are also observed in field measurements.

An alternative approach to ROP estimation is provided by the present invention by the use of a state-space approach.

A state-space model comprises two equations: a measurement equation describing how observable measurements relate to the state vector, and a state evolution equation showing how the components of the state vector evolve in time. The state vector itself is a complete description of the system and contains parameters to be estimated.

The state-space model applicable to the ROP problem has a state vector X with components: displacement s, surface ROP Δs, compliance Λ and downhole ROP Δd ##EQU5##

The observed parameter is displacement s, so the measurement equation (H=measurement matrix) is simply ##EQU6## and the state evolves in this manner (Φ=state transition matrix) ##EQU7## where τ is the time interval between adjacent sampling instants indicated by subscripts k and k+1.

The depth measurement itself will contain noise and the above "model" chosen to represent the system will not be exactly true (e.g. there may be perturbing accelerations). The measurement and state evolution equations can be modified to include additive noise components (ρ_(k), r_(k)) which account for these discrepancies. In a general formulation for state space models, the matrices H and Φ may also be time-varying. Using conventional notation (y=observed output values) we have

    y.sub.k =H.sub.k X.sub.k +ρ.sub.k                      (4)

    X.sub.k =Φ.sub.k X.sub.k-1 +r.sub.k                    (5)

The second order statistics (covariance matrices) of the noise components {ρ_(k),r_(k) } may be written as

    R.sub.k =E{ρ.sub.k ρ.sup.T }                       (6)

    Q.sub.k =E{r.sub.k r.sub.k.sup.T }                         (7)

(where E is the expectation operator and T is the matrix transpose operator). Taking a least-squares approach, we seek the "best" estimate X_(k) of the actual state X_(k). The difference between the estimate and the true state can be expressed in the offset covariance matrix

    P.sub.k =E{(X.sub.k -X.sub.k)(X.sub.k -X.sub.k).sup.T }    (8)

The optimum solution to this problem (i.e. the one which minimises the trace of the matrix P) was given by Kalman (R E Kalman. A new approach to linear filtering and prediction problems. In Trans. ASME, March 1960) and a summary of the Kalman filter equations is given in Appendix A. The filter provides estimates of State X_(k) and offset covariance P at each sampling instant given a knowledge of Q and R, the noise covariances.

The measurement noise variance R can be estimated from the depth derivative. In the case of the data shown in FIG. 1, the standard deviation of the noise is calculated to be ˜1 mm, so R=1×10⁻⁶. For the FIG. 2 data, the quantisation step size controls the variance, giving R=4×10⁻⁸.

An estimation of Q may be made by considering a perturbing acceleration a_(k). ##EQU8## so the state covariance is ##EQU9## where σ_(a) ² =E{a_(k) a_(k) ^(T) }, the variance of the acceleration, is chosen on the basis of a knowledge of expected ROP variations.

The ratio between R and σ_(a) ² incorporates the same trade-off between response time and estimate variance as the choice of window width in the conventional processing; however, the formulation in terms of measurement and state noise levels makes explicit the values to be used. The performance of the Kalman filter is almost entirely determined by the choice of Q. Techniques to estimate Q from the data are non-trivial and have been discussed at length in H W Sorenson, editor, Kalman filtering: theory and applications. Selected Reprints, IEEE Press, 1985.

Since the Kalman filter is a recursive estimator, initial conditions are required for X and P. In the following examples, the initial conditions ##EQU10## have been used. Selection of these is not crucial since the filter will continuously correct for estimation errors and converge to the correct solution, leaving a start-up transient in the estimate if the initial values were very much in error.

The above processing has been applied to the two drilling machine examples previously shown.

FIG. 3(a) shows the ROP estimate for the FIG. 1 data and should be compared with FIG. 1(c), the conventional ROP estimate. σ.sub.α² Δt² has been chosen to be 1×10⁻¹¹. Not only is the variance considerably lower, but the response time of the Kalman estimator to step changes in WOB is faster. It is interesting to compare the estimate with the original depth derivative calculated on a sample by sample basis (i.e.--d_(k+) 1=-d_(k)). This is shown in FIG. 3(b) (plotted as discrete points on the same scale as FIG. 1(c). The ROP estimate is of the same order as a single quantisation step in the original data.

FIG. 4 shows the processing applied using the data shown in FIG. 2. Here the choice of σ.sub.α² Δt² (3×10⁻¹²) is such as to make the response time similar to the 2 second averaging used in FIG. 2. The variance of the measurement, due mainly to the original quantisation is much less than the conventional processing. Again, FIG. 4(c) shows the quantisation level of the original depth derivative.

In the following Appendices, Appendix A gives the Kalman filter equations, Appendix B gives a generalised code in Matlab to implement the Kalman filter, and Appendix C gives an example of use of the code.

APPENDIX A

Given the following state-space model

    y.sub.k =H.sub.k X.sub.k +ρ.sub.k

    X.sub.k =Φ.sub.k X.sub.k-1 +r.sub.k

and defining various noise covariances ##EQU11## then the Kalman filter equations to estimate X are ##EQU12##

APPENDIX B Matlab Code (.M file)

A generalized Matlab code to implement the Kalman filter described in Appendix A for constant H and Φ matrices is shown below.

    ______________________________________                                         function [X, P, e] = kalengine(z, H,Phi Q,R,P, XO)                             %KALENGINE                                                                     % [X,P,e] = kalengine(z, H,Phi, Q,R,P, XO)                                     %                                                                              %  Basic KALMAN ENGINE, for constant H and                                        Phi matrices                                                                %  NB: Limited to scalar problems for the moment.                              %                                                                              %                                                                              % Modified:                                                                    %                                                                              [mz,nz] = size(z); % Dimensions                                                [mh,nh] = size(H);                                                             [mf,nf] = size(Phi);                                                           [mq,nq] = size(Q);                                                             [mr,nr] = size(R);                                                             [mp,np] = size(P);                                                             [mx,nx] = size(XO);                                                            %                                                                              if nz .sup.˜ = 1; error(`Sorry, scalar problems only`); end              if mh .sup.˜ = nz; error(`H is wrong size`); end                         if mf .sup.˜ = nf; error(`Phi should be square`); end                    if nf .sup.˜ = nh; error(`Phi is wrong size`); end                       if mq .sup.˜ = nq; error(`Q should be square`); end                      if nq .sup.˜ = nh; error(`Q is wrong size`); end                         if mr .sup.˜ = nr; error(`R should be square`); end                      if nr .sup.˜ = nz; error(`R is wrong size`); end                         if mp .sup.˜ = np; error(`P should be square`); end                      if np .sup.˜ = nh; error(`P is wrong size`); end                         if nx .sup.˜ = 1; error(`XO should be column vector`); end               if mx .sup.˜ = mf; error(`XO is wrong size`); end                        %                                                                              disp(`KALMAN ENGINE - Warning: using .M file, not .MEX`)                       %                                                                              n = mz;                                                                        m = nh;                                                                        %                                                                              X = zeros(m,n);   % allocate output variables                                  I = eye(m);                                                                    e = zeros(z);                                                                  %                                                                              X(:,1) = XO;                                                                   e(1,:) = z(1,:) - H * XO;                                                      %                                                                              for i = 2:n                                                                     k = i - 1;                                                                     P = Phi * P * Phi` + Q;                                                                         % predict offset variance                                     K = P * H` /     % KALMAN gain                                                 (H * P * H` + R);                                                              Xhat = Phi * X(:,k);                                                                            % state prediction                                            Z = H * Xhat;    % measurement prediction                                      E = z(i,:) - Z;  % innovation sequence                                         e(i,:) = E;                                                                    X(:,i) = Xhat + K * E;                                                                          % state estimate                                              P = (I - K * H) * P;                                                                            % variance estimate                                          end                                                                            %                                                                              X=X`;                                                                          %                                                                              ______________________________________                                    

The Matlab routine has been implemented as a FORTRAN .MEX file, which yields a speed improvement of a factor of 50 over the .M file version.

APPENDIX C Example of using KALENGINE.M

The simple state space model developed in section 3.1 is given as an example of using the generalized code given in the previous Appendix.

Recall that for this model

    ______________________________________                                          ##STR1##                                                                       ##STR2##                                                                      function [X, P, e] = kalrop(z,Q,R,P)                                           %KAL                                                                           %   X = kalrop(height, Q,R) - Kalman filter                                    %                                                                              %  X = [ height rop ] - ROP from displacement measurement                      %                                                                              %  USING KALMAN ENGINE                                                         %                                                                              d = z(1);                                                                      v = z(2) - z(1);                                                               X0 = [ d v ]';   % initial guess                                               H = [ 1 0 ];                                                                   Phi = [ 1 1 ; 0 1 ];                                                           if nargin <4, P = 10*Q; end                                                    %                                                                              [X,P,e] = kalengine(z, H,Phi, Q,R,P, X0);                                      %                                                                              ______________________________________                                    

This function was used to compute the examples shown in figures and >>X=kalrop(depth,Q,R). 

I claim:
 1. A method of determining the rate of penetration Δd of a drill bit at the end of a drill string while drilling a well, comprising:(a) installing and connecting compatible components of mechanical drill bit hardware, electronic instruments, and a computer program system to a drill string that is to be lowered into a well at a known rate observed relative to the surface; (b) measuring while drilling a value S, representing the noise distorted actual vertical displacement s of the drill string at the surface; (c) formulating a mathematical model to describe the vertical displacement of the drill string within the well in terms of certain chosen physical parameters pertaining to the drilling with drill bit hardware, the electronic instruments, and a mode of drilling operation, such as drill string compliance, hookload, hookload rate, and an error due to noise distortion contributions from electrical noise, mechanical vibrations and/or as representing random state fluctuations,wherein said mathematical model is a mathematical state space model of the evolving system, comprising a state space measurement equation for the state parameters S, s taken at different times for consecutive or adjacent samples k(i)=k+i, where i is equal to 1,2,3, . . . last data sample; ##EQU13## wherein S, Δd, and s are as previously defined, Δ is the difference operator for time τ between adjacent samples k and k+1, Λ is the drill string compliance, and ρ is the noise term associated with the surface displacement measurement corresponding to the drill bit penetration, and a state evolution equation; ##EQU14## wherein all the symbols are as previously defined, with the additions of r being the noise term associated with fluctuations in the state, h being the hookload, and Δh being the hookload rate over the same time interval τ of change; (d) applying a Kalman filter to said equations to obtain a noise-compensated estimate of the state parameters S, s; and (e) using said estimate to determine said actual rate of penetration Δd of said drill bit within the well while drilling said well, absent the effect of said noise distortion. 